package com.itmake.sample.toolbox.compile;

import javassist.*;

import java.io.IOException;

/**
 * javassist
 *
 * @author Amjacks
 * @since 2023/08/10
 */
public class Javassist {

    public static void main(String[] args) throws CannotCompileException, NotFoundException, IOException {
        // 指定 jar
        ClassPool.getDefault().insertClassPath("D:\\xxx.jar");
        // 获取类
        CtClass cls = ClassPool.getDefault().getCtClass("xxx.yyy.ccc.LicenseValidation");
        // 获取方法
        CtMethod first = cls.getDeclaredMethod("validateProject");
        // 重置方法体
        first.setBody("return true;");
        // 编译 class
        cls.writeFile();
        // ……
        // 使用 jar uvf 替换 class
        // jar uvf xxx.jar com/itmake/yyy/zzz.class
    }
}
